<!DOCTYPE html>
<!--
     SPDX-License-Identifier: CC-BY-SA-4.0
     SPDX-FileCopyrightText: 2020 seL4 Project a Series of LF Projects, LLC.
-->
<!-- Page last generated 2025-02-20 03:16:15 +0000 -->
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Suggested Projects | seL4 docs</title>

    <!-- Our stylesheet and theme stylesheet.  Contains bootstrap. -->
    <link rel="stylesheet" href="/assets/css/style.css" type="text/css">
    <!-- Font awesome -->
    <link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
    <!-- Pygments syntax highlighting  -->
    <link rel="stylesheet" href="/assets/css/highlighting/trac.css" type="text/css">
    <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"><script defer data-domain="docs.sel4.systems"
	    src="https://analytics.sel4.systems/js/script.js"></script></head>

  <body class="container-fluid">

    



<header>
  <ul class="row menu">
    <li class="col-xs-12 col-md-2" >
            <a href="https://sel4.systems" class="skip-icon">
              <img class="img-responsive" src="/assets/logo-text-white.svg" alt="seL4 logo" />
            </a>
    </li>
    <li class="col-xs-12 col-md-10 menu">
      <nav aria-label="Banner links">
        <h2><a href="/Resources" />Resources</h2>
        <h2><a href="/processes" />Contributing</a></h2>
        <h2><a href="/projects" />Projects</h2>
        <h2><a href="/Tutorials" />Tutorials</h2>
        <iframe title="DuckDuckGo search bar" src="https://duckduckgo.com/search.html?site=docs.sel4.systems&prefill=Search%20sel4.systems" style="overflow:hidden;margin-bottom:10px; padding:0;height:40px;float:right;border-width: 0px"></iframe>
      </nav>
    </li>
  </ul>
  <div class="clear"></div>
  
<div class="breadcrumbs bootstrap hidden-sm-down">
  <nav class="sel-breadcrumb" aria-label="Breadcrumb" >
    <ol class=" list-unstyled" vocab="http://schema.org/" typeof="BreadcrumbList">
      
      
        

        

        <li class="breadcrumb-item" property="itemListElement" typeof="ListItem">
            <a property="item" typeof="WebPage" href="/">
              <span property="name"><b>seL4 Docs</b></span>
            </a>
            <meta property="position" content="1" />
        </li>
      
        

        
          <li class="breadcrumb-item" property="itemListElement" typeof="ListItem">
            <span property="name">Suggested Projects</span>
            <meta property="position" content="2" /></li>
          
    </ol>
  </nav>
  <nav class="sel-version" aria-label="Current Versions">
    <ol class="list-unstyled">
      <li class="list-unstyled text-right" style="margin-left:auto; padding:0rem 0rem;">
        Current versions:</li>
      <li class="list-unstyled text-right">
      <a href="/releases/sel4/13.0.0"><b>seL4-13.0.0</b></a></li>
      <li class="list-unstyled text-right">
      <a href="/releases/microkit/1.4.1"><b>microkit-1.4.1</b></a></li>
      <li class="list-unstyled text-right">
      <a href="/releases/camkes/camkes-3.11.0"><b>camkes-3.11.0</b></a></li>
      <li class="list-unstyled text-right">
      <a href="/releases/capdl/0.3.0"><b>capDL-0.3.0</b></a></li>
      </ol>
  </nav>
  <div class='clear'></div>
</div>


</header>

    <main>
      <div class="row">
  <div class="hidden-xs col-sm-4 col-md-3 col-lg-2">
    


<div class="sidebar">
















</div>

  </div>
  <div class="col-sm-8 col-md-9 col-lg-8 main">
    
    <div class="content">
      <h1 id="suggested-projects">Suggested Projects</h1>

<p>After trying the existing projects (e.g. the <a href="Tutorials">Tutorials</a>)
a good way to learn the intricacies of programming on
top of seL4 is to do the exercises in the
<a href="http://www.cse.unsw.edu.au/~cs9242/current/">UNSW Advanced
Operating Systems course</a>.</p>

<h1 id="possible-projects">Possible Projects</h1>

<p>Below is a set of suggested projects of varying degree of
sophistication. If you’re interested in providing generally-useful
infrastructure, you’re probably best off basing this on the CAmkES
environment.</p>

<p>If you are planning to produce a significant and long-lived part of the
seL4 open-source ecosystem (as opposed to just having fun for yourself)
you should talk to us first. We run frequent student and occasionally
larger development projects, and may already have something that can
serve as a starting point. We will in the future try to be more
pro-active in seeding projects with incomplete internal work.</p>

<h2 id="ports-to-other-platforms">Ports to other platforms</h2>

<p>seL4 currently runs on only a small set of platforms. Porting seL4
itself is usually pretty easy; porting the platform support library and
its drivers is trickier.</p>

<p>Some interesting platforms that could support seL4 include:</p>

<ul>
  <li>Any of the Tegra SoCs from NVIDIA.</li>
  <li>The RK3188, maybe using the <a href="http://radxa.com/Home">Radxa Rock Pro</a> development board</li>
  <li>Any of the Arm V8 64-bit processors that are beginning to
    become available.</li>
</ul>

<h2 id="qubes">Qubes</h2>

<p><a href="https://qubes-os.org/">Qubes</a> is an open source operating
system designed to provide strong security for desktop computing using
virtualisation to provide isolation. Qubes is based on Xen. seL4 is a
much better fit for Qubes. The project is to port Qubes to seL4 (or
develop an alternative Qubes-like system for seL4).</p>

<h2 id="bug-fixes-and-enhancements">Bug fixes and enhancements</h2>

<p>The build system needs work. A typical project comprises the kernel,
libraries and apps; dependencies between these are not properly tracked,
which means things are rebuilt even if up-to-date; also sometimes things
are not rebuilt when they should be.</p>

<p>There are other problems with the system as a whole that need
addressing. In particular the drivers in libsel4platsupport need
extension and improvement.</p>

<h2 id="useful-components">Useful Components</h2>

<p>Drivers, file systems, useful libraries… Especially a POSIX
environment would be useful.</p>

<h2 id="port-doom">Port Doom</h2>

<p>Port the PC game
<a href="https://en.wikipedia.org/wiki/Doom_(1993_video_game)">Doom</a> to
run on seL4.</p>

<h2 id="minix-3-on-sel4">Minix 3 on seL4</h2>

<p>Minix is the original multi-server OS by Tannenbaum.
<a href="http://www.minix3.org/">Minix 3</a> is the latest shiny version
of it, and is based on a more limited microkernel than seL4. So far x86
is supported.</p>

<p>The project is to port Minix 3 to run on seL4.</p>

<h2 id="language-support">Language Support</h2>

<p>Userspace currently needs to be written in C (or assembler). An
interesting challenge is to provide run-time support for higher level
languages, such as C++, Java, Go, Haskell, Python. Some of that exists
internally:</p>

<ul>
  <li>reasonably mature support for a subset of C++ (no template
    library), we’ll probably release that soon for others to build on</li>
  <li>we have Haskell sort-of running on seL4 (thanks or friends from
    <a href="https://galois.com/">Galois</a> for their help), should be
    released in the near future</li>
  <li>there is a student-level port of Go, which is bitrotted but could
    be made available if someone wants to revive it</li>
  <li>limited support of Rust applications</li>
</ul>

<h2 id="stuff-were-working-on">Stuff we’re working on</h2>

<p>Development of major new kernel features will continue to happen primarily at
the Trustworthy Systems group at UNSW for the foreseeable future, as this
not only requires a good understanding of the kernel design and
implementation, but also a good understanding of what is feasible to verify.
Several of these internal projects are reasonably mature and will be
published soon, see also the <a href="/projects/roadmap.html">seL4 roadmap</a>.</p>

    </div>
  </div>
</div>

    </main>
    


<footer class="site-footer">

  <h2 class="footer-heading">seL4 docs</h2>

  <div class="footer-col-wrapper">

    <div class="col-md-2">
      



<ul class="social-media-list">
  <li><a href="https://github.com/sel4"><i class="fab fa-github"></i> <span class="username">sel4</span></a></li><li><a href="https://github.com/sel4proj"><i class="fab fa-github"></i> <span class="username">sel4proj</span></a></li>
</ul>

    </div>

    <div class="col-md-8">
      <ul class="list-unstyled">
        <li>
          This site is for displaying seL4 related documentation.  Pull requests are welcome.
        </li>
        
          <li>
            Site last updated: Fri Feb 7 10:17:38 2025 +1100 ee78c8857c
          </li>
          <li>
                Page last updated: Mon Jan 6 18:52:01 2025 +1100 df31e5ccb8
          </li>
        
      </ul>
    </div>
    <div class="col-md-2">
<a href="https://github.com/seL4/docs/blob/master/SuggestedProjects.md">View page on GitHub</a>
      <br />
      <a href="https://github.com/seL4/docs/edit/master/SuggestedProjects.md">Edit page on GitHub</a>
      <br />
      <a href="/sitemap">Sitemap</a>
    </div>

  </div>

</footer>

  </body>
</html>
